Enabling a non-core domain to control memory bandwidth in a processor

ABSTRACT

In one embodiment, the present invention includes a processor having multiple domains including at least a core domain and a non-core domain that is transparent to an operating system (OS). The non-core domain can be controlled by a driver. In turn, the processor further includes a memory interconnect to interconnect the core domain and the non-core domain to a memory coupled to the processor. Still further, a power controller, which may be within the processor, can control a frequency of the memory interconnect based on memory boundedness of a workload being executed on the non-core domain. Other embodiments are described and claimed.

This application is a continuation of U.S. patent application Ser. No.13/282,896, filed Oct. 27, 2011, the content of which is herebyincorporated by reference.

BACKGROUND

As technology advances in the semiconductor field, devices such asprocessors incorporate ever-increasing amounts of circuitry. Over time,processor designs have evolved from a collection of independentintegrated circuits (ICs), to a single integrated circuit, to multicoreprocessors that include multiple processor cores within a single ICpackage. As time goes on, ever greater numbers of cores and relatedcircuitry are being incorporated into processors and othersemiconductors.

Multicore processors are being extended to include additionalfunctionality by incorporation of other functional units within theprocessor. One issue that arises is that the different circuitry canhave differing needs with regard to frequency of operation based ontheir workloads. However, suitable mechanisms to ensure that thesedifferent units operate at an appropriate frequency are not available.Further, the different units can have a shared interface to access ashared cache or system memory. Typically, this interface to the cacheand system memory is either operated at a constant fixed frequency or istied to the frequency of the processor cores.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is high level flow diagram of a method in accordance with anembodiment of the present invention.

FIG. 2 is a flow diagram of a method for updating a mapping table inaccordance with an embodiment of the present invention.

FIG. 3 is a block diagram of a processor in accordance with anembodiment of the present invention.

FIG. 4 is a block diagram of a multi-domain processor in accordance withanother embodiment of the present invention.

FIG. 5 is a block diagram of a system in accordance with one embodimentof the present invention.

DETAILED DESCRIPTION

A multi-domain processor including multiple domains such as a coredomain, a non-core domain and a system agent domain can enable thenon-core domain to control memory bandwidth available to it. As will bedescribed herein, in various embodiments this memory bandwidth can berealized by an interconnect structure, namely a ring interconnect thatis part of the core domain. However, although described herein as beingpart of the core domain, understand that in other implementations amulti-domain processor can include an independent interconnect domain.By allowing a non-core domain to have control over an interconnectfrequency and thus bandwidth, memory bandwidth used by non-core domaincan be more efficient.

As will be discussed further below, in a multi-domain processor, anon-core domain can be coupled to a shared memory such as a last levelcache and system main memory via an interconnect structure. By default,the interconnect frequency can be at the maximum frequency of all activecores of the core domain. If however the processor is power and/orthermally limited, the interconnect frequency drops along with thecores' frequency. Since the interconnect frequency impacts the effectivememory bandwidth available to the non-core domain, the interconnectfrequency has a significant impact on non-core domain performance.However, higher interconnect frequency comes at a cost of higher powerconsumption in the core domain. Embodiments may use a mailbox interfaceto dynamically optimize power/performance for a workload executing on anon-core domain.

In the particular implementation described herein, the non-core domaincan be a graphics domain that includes one or more graphics engines. Byenabling this domain to control its memory bandwidth via an interconnectto a memory hierarchy, performance of this domain can be improved, sinceparticularly for a graphics workload performance is a strong function ofbandwidth available to it. Although different manners of providing thiscontrol to the graphics domain are possible, embodiments describedherein enable this ability by a mechanism that maps non-core domainfrequency to a corresponding interconnect frequency. This mapping can bemaintained in a table, which may be located in a power controller of theprocessor such as a power control unit (PCU). As will be describedherein, this table can be configured during initialization by thenon-core domain and furthermore, the table can be dynamically updatedbased on a workload being executed by the non-core domain. In this way,a close association between the workload being handled in the non-coredomain and the bandwidth of the path to the memory subsystem can beachieved.

Referring now to FIG. 1, shown is high level flow diagram of a method inaccordance with an embodiment of the present invention. As shown in FIG.1, method 100 can be performed by logic of the PCU, which can be theowner of the mapping table that associates non-core domain operatingfrequencies and corresponding interconnect operating frequencies.Namely, the table can map non-core domain frequency to a minimuminterconnect frequency. However, the table data and initiation of tableconfiguration and updates may be from another entity, such as a driverfor the non-core domain. As seen, method 100 begins by receiving aconfiguration message from the non-core domain to configure a mappingtable (block 110). This message may be received from a core of the coredomain, as this driver may execute on a core. The receipt of informationcan be by way of a mailbox interface. This interface thus provides amechanism for the driver to exchange parameters with the PCU. In oneembodiment, a dedicated bus can be provided for communication betweenthe driver and the PCU. In turn, the PCU can include a temporary storagearea to store the incoming communications, and provide an interface to amapping table in accordance with an embodiment of the present invention.In one embodiment this mailbox interface may enable the communication oftable entries in serial fashion to thus populate the mapping table,which can be stored in a lookup table such as present in a memory of thePCU, e.g., random access memory (RAM). Next, at block 120 the mappingtable can be configured using the mapping information received from thenon-core domain. At this point the table entries have been written, andthe PCU is now in position to control interconnect frequency based onthe frequency at which the non-core domain is operating.

Accordingly, during normal operation control passes to block 130 wherethe interconnect frequency can be controlled using the mapping table.More specifically, responsive to the non-core domain operatingfrequency, which the PCU itself configures, a corresponding interconnectfrequency is also configured. For example, when a graphics frequencychanges, the PCU can use the updated graphics frequency value as anindex into the table to access a table entry that includes acorresponding interconnect frequency for that graphics domain frequency.Accordingly, the PCU can take appropriate action to cause thatinterconnect frequency to be provided. As an example, the interconnectfrequency can be changed by the same mechanism used to change coredomain frequency, namely requesting core and non-core domains to pausegenerating cache bound or memory bound requests, draining theinterconnect domain of all outstanding requests, effecting a frequencychange and enabling the core and non-core domains to resume generatingcache or memory traffic.

In the particular implementation described herein, note that theinterconnect structure can be within the core domain and thus the coredomain frequency itself is controlled. Note also that the frequency thusread from the table is a minimum frequency at which the interconnect isto operate and accordingly if the core domain is operating at a higherfrequency than this value, the update to the interconnect frequency doesnot occur. And, when the processor is power/thermally limited, thisfrequency is not guaranteed. Further understand that in embodiments inwhich the interconnect frequency is also the operating frequency of thecore domain, the PCU may select a maximum of the interconnect frequencyfrom the appropriate mapping table entry and the core operatingfrequency requested by the operating system. Although shown at this highlevel in the embodiment of FIG. 1, understand the scope of the presentinvention is not limited in this regard.

As discussed above, the actual values stored in the mapping table canoriginate with the driver for the non-core domain. In one embodiment,this driver may include different tables, each associated with aparticular type of workload to be executed on the non-core domain. Thesetables may include a base table that can be written to the mapping tablein the PCU upon system initialization. However, due to changes in theworkload, the table can be updated dynamically. This update may be toone or more values the table, or a complete update of the table to a newset of values can occur. Note that these different table configurationscan be stored in connection with the driver, and each can be based oncharacterization testing of different workloads executing on thenon-core domain. In a graphics domain example, different workload typescan be different graphics resolution modes, 3D mode, multiple monitorconfigurations, and so forth. Also, different table entries may beprovided depending on whether a gaming workload is performed (e.g.,increasing interconnect frequency) or whether video playback on aportable device is executing (e.g., decreasing interconnect frequency)to reduce battery consumption.

Referring now to FIG. 2, shown is a flow diagram of a method forupdating a mapping table in accordance with an embodiment of the presentinvention. This method can be performed at least in part by a non-coredomain driver or other software/firmware/logic that can be used to causea mapping table to be set up for use in connection with interconnectfrequency control. In the implementation described herein where thenon-core domain is a graphics domain, the driver for the graphics domainmay operate on a core of the core domain. As shown in FIG. 2, moregenerally method 200 may be performed by a driver for the non-coredomain, along with logic of the PCU. In general, the flow of method 200can be performing at a predetermined interval, e.g., approximately every10 to 500 milliseconds (ms).

As seen, method 200 begins by determining whether a characteristic of aworkload executing on the non-core domain has changed (diamond 210). Ifnot, the remainder of the flow does not proceed for this iteration. Notethat the analysis of the workload change may be based on a video modebeing executed, e.g., video resolution, the presence of multiplemonitors, a 3D mode, a type of media being played back, or so forth.

If instead it is determined at diamond 210 that the workloadcharacteristic has changed, control passes to block 220. There, adetermination may be made as to the memory boundedness of the workload(block 220). Although the scope of the present invention is not limitedin this regard, in one embodiment the determination of memoryboundedness can be based on statistics gathered for a given timeinterval as to the status of certain operations of the workload. Forexample, in one embodiment memory boundedness can be determined based ona number of misses from low level caches (e.g., of the non-core domain)that require access to a last level cache (LLC) or system memory. Inother implementations, memory boundedness can be determined as a ratiowith regard to the residency of outstanding loads from memory ofinstructions in an order buffer such as a memory order buffer (MOB) ascompared to time spent in an active (e.g., a C0) state. Or theboundedness can be determined by a ratio of non-core domain read andwrite transactions on the memory interconnect to the total transactions.Memory boundedness can also be inferred by analyzing the number ofmemory read/write or commands being sent out to each of the memorymodules.

This determination of memory boundedness can thus take some amount oftime to obtain. Upon its completion, the driver can send an update forthe mapping table to the PCU (block 230). In one embodiment, the drivercan use the mailbox interface to update the mapping table. As discussed,this update can be to one or more (up to all) entries of the mappingtable. For example, assume that the workload is memory bounded, thedriver can cause updated values to be sent to the PCU to thus enable thetable to be updated with increased interconnect frequency values for thesame corresponding non-core domain frequency values. Accordingly,control passes to block 240, where the PCU can then use this updatedmapping table to select an appropriate interconnect frequency for thecorresponding non-core domain frequency. While described with thisparticular implementation in the embodiment of FIG. 2, understand thescope of the present invention is not limited in this regard.

As seen in the example of Table 1, the mapping table can include aplurality of entries each having two parameters namely non-core domainfrequency and corresponding minimum interconnect frequency, which in theTable 1 embodiment may be in terms of megahertz (MHz). However in otherembodiments the table can store entries that associate frequencies byratios, offsets or so forth. In an embodiment, the non-core domaindriver during run time can use the mailbox interface to set up thistable in PCU memory. This configuration may be via specification ofpairwise entries to identify a target interconnect frequency for acorresponding non-core domain frequency. Then after configuration, thePCU can access the table based on a frequency at which the non-coredomain is operating to obtain the corresponding target interconnectfrequency, and in turn control the core domain to operate at thisfrequency (assuming it is higher than the current operating frequency ofthe core domain). Note that when the core domain is operating at anincreased frequency due to the non-core domain control, and the non-coredomain thereafter enters into a sleep state, the PCU can update the coredomain frequency to a lower, OS-requested level to reduce powerconsumption.

TABLE 1 Minimum Interconnect Table Entry Non-Core Frequency Frequency 1300 800 2 350 800 3 400 800 4 450 800 5 500 800 6 550 800 7 600 800 8650 1500 9 700 1500 11 750 1500 12 800 1500 13 850 1500 14 900 1800 15950 1900 16 1000 2000 17 1050 2100 18 1100 2200 19 1150 2300 20 12002400 21 1250 2500 22 1300 2600

Referring now to FIG. 3, shown is a block diagram of a processor inaccordance with an embodiment of the present invention. As shown in FIG.3, processor 300 may be a multicore processor including a plurality ofcores 310 _(a)-310 _(n). In one embodiment, each such core may be of anindependent power domain and can be configured to operate at anindependent voltage and/or frequency, and to enter turbo mode whenavailable headroom exists. The various cores may be coupled via aninterconnect 315 to a system agent or uncore 320 that includes variouscomponents. As seen, the uncore 320 may include a shared cache 330 whichmay be a last level cache. In addition, the uncore may include anintegrated memory controller 340, various interfaces 350 and a powercontrol unit 355.

In various embodiments, power control unit 355 may include a frequencycontrol logic 359, which may be a logic to perform dynamic control ofinterconnect frequency responsive to a request of a given domain (whichcan be one of the core domains or a non-core domain). In the embodimentof FIG. 3, assuming that each core is of an independent power domain,logic 359 can control an interconnect frequency (where the interconnectcan be of one of core domains) responsive to a request of a givendomain, e.g., with reference to a mapping table 357. In someembodiments, each domain can have at least one mapping table withentries to associate a given domain frequency and a correspondingminimum interconnect frequency. In turn, each such domain can write itsmapping table to mapping table 357, which may thus include multipletables each associated with a given domain. Although shown at thislocation in the embodiment of FIG. 3, understand that the scope of thepresent invention is not limited in this regard and the storage of thisinformation can be in other locations, such as configuration registers,non-volatile storage or the like.

With further reference to FIG. 3, processor 300 may communicate with asystem memory 360, e.g., via a memory bus. In addition, by interfaces350, connection can be made to various off-chip components such asperipheral devices, mass storage and so forth. While shown with thisparticular implementation in the embodiment of FIG. 3, the scope of thepresent invention is not limited in this regard.

Referring now to FIG. 4, shown is a block diagram of a multi-domainprocessor in accordance with another embodiment of the presentinvention. As shown in the embodiment of FIG. 4, processor 400 includesmultiple domains. Specifically, a core domain 410 can include aplurality of cores 410 ₀-410 n, a graphics domain 420 can include one ormore graphics engines, and a system agent domain 450 may further bepresent. In various embodiments, system agent domain 450 may execute ata fixed frequency and may remain powered on at all times to handle powercontrol events and power management such that domains 410 and 420 can becontrolled to dynamically enter into and exit low power states. Each ofdomains 410 and 420 may operate at different voltage and/or power.

Note that while only shown with three domains, understand the scope ofthe present invention is not limited in this regard and additionaldomains can be present in other embodiments. For example, multiple coredomains may be present each including at least one core.

In general, each core 410 may further include low level caches inaddition to various execution units and additional processing elements.In turn, the various cores may be coupled to each other and to a sharedcache memory formed of a plurality of units of a last level cache (LLC)440 ₀-440 _(n). In various embodiments, LLC 450 may be shared amongstthe cores and the graphics engine, as well as various media processingcircuitry. As seen, a ring interconnect 430 thus couples the corestogether, and provides interconnection between the cores, graphicsdomain 420 and system agent circuitry 450. In one embodiment,interconnect 430 can be part of the core domain. However in otherembodiments the ring interconnect can be of its own domain. In anyevent, the interconnect frequency can be controlled via system agentcircuitry as described herein.

In the embodiment of FIG. 4, system agent domain 450 may include displaycontroller 452 which may provide control of and an interface to anassociated display. As further seen, system agent domain 450 may includea power control unit 455 which can include a frequency control logic 459in accordance with an embodiment of the present invention to dynamicallyupdate the frequency of interconnect 430. In various embodiments, thislogic may execute at least part of the algorithms shown in FIGS. 1 and 2to dynamically control interconnect frequency. To this end, PCU 455 canbe coupled to a mapping table 457, which may be a table configured asabove to provide for association between a domain's frequency and acorresponding minimum interconnect frequency. Although the aboveembodiment of Table 1 shows table entries associating non-core domainfrequency and minimum interconnect frequency, understand that multiplemapping tables may be present, each associated with a given domain ofthe processor and a corresponding minimum interconnect frequency.

To enable configuration of such table, which can be in a RAM of systemagent domain 450, a mailbox interface 456 can be present. In general,interface 456 can include a first register 456 a and a second register456 b. Such registers provide an interface for handshake-basedcommunications between the PCU and other domains. In one embodiment,first register 456 a can include a flag field to store a flag, a commandfield to store a command, and an address field to store an address,e.g., of an entry within mapping table 457. Second register 456 b may bea data storage register. In one embodiment, graphics domain 420 canwrite an entry into a corresponding location within mapping table 457 bysetting the flag field of first register 456 a high, providing a writecommand for the command field, and providing an address corresponding tothe entry in the table to be written to the address field, and furtherproviding the data to be written to second register 456 b. In turn,responsive to the active flag field, PCU 455 can thus write the data tothe corresponding entry and reset the flag field to indicate to thegraphics domain that it can write the next entry. While described withthis particular protocol in the embodiment of FIG. 4, understand thescope of the present invention is not limited in this regard.

As further seen in FIG. 4, processor 400 can further include anintegrated memory controller (IMC) 470 that can provide for an interfaceto a system memory, such as a dynamic random access memory (DRAM).Multiple interfaces 480 ₀-480 _(n) may be present to enableinterconnection between the processor and other circuitry. For example,in one embodiment at least one direct media interface (DMI) interfacemay be provided as well as one or more Peripheral Component InterconnectExpress (PCI Express™ (PCIe™)) interfaces. Still further, to provide forcommunications between other agents such as additional processors orother circuitry, one or more interfaces in accordance with an Intel®Quick Path Interconnect (QPI) protocol may also be provided. Althoughshown at this high level in the embodiment of FIG. 4, understand thescope of the present invention is not limited in this regard.

Embodiments may be implemented in many different system types. Referringnow to FIG. 5, shown is a block diagram of a system in accordance withan embodiment of the present invention. As shown in FIG. 5,multiprocessor system 500 is a point-to-point interconnect system, andincludes a first processor 570 and a second processor 580 coupled via apoint-to-point interconnect 550. As shown in FIG. 5, each of processors570 and 580 may be multicore processors, including first and secondprocessor cores (i.e., processor cores 574 a and 574 b and processorcores 584 a and 584 b), although potentially many more cores may bepresent in the processors. Each of the processors can include a PCU orother logic to perform dynamic control of an on-chip memory interconnectbased on a non-core domain request, as described herein.

Still referring to FIG. 5, first processor 570 further includes a memorycontroller hub (MCH) 572 and point-to-point (P-P) interfaces 576 and578. Similarly, second processor 580 includes a MCH 582 and P-Pinterfaces 586 and 588. As shown in FIG. 5, MCH's 572 and 582 couple theprocessors to respective memories, namely a memory 532 and a memory 534,which may be portions of system memory (e.g., DRAM) locally attached tothe respective processors. First processor 570 and second processor 580may be coupled to a chipset 590 via P-P interconnects 552 and 554,respectively. As shown in FIG. 5, chipset 590 includes P-P interfaces594 and 598.

Furthermore, chipset 590 includes an interface 592 to couple chipset 590with a high performance graphics engine 538, by a P-P interconnect 539.In turn, chipset 590 may be coupled to a first bus 516 via an interface596. As shown in FIG. 5, various input/output (I/O) devices 514 may becoupled to first bus 516, along with a bus bridge 518 which couplesfirst bus 516 to a second bus 520. Various devices may be coupled tosecond bus 520 including, for example, a keyboard/mouse 522,communication devices 526 and a data storage unit 528 such as a diskdrive or other mass storage device which may include code 530, in oneembodiment. Further, an audio I/O 524 may be coupled to second bus 520.Embodiments can be incorporated into other types of systems includingmobile devices such as a smart cellular telephone, tablet computer,netbook, ultrabook, or so forth.

Embodiments may be implemented in code and may be stored on anon-transitory storage medium having stored thereon instructions whichcan be used to program a system to perform the instructions. The storagemedium may include, but is not limited to, any type of disk includingfloppy disks, optical disks, solid state drives (SSDs), compact diskread-only memories (CD-ROMs), compact disk rewritables (CD-RWs), andmagneto-optical disks, semiconductor devices such as read-only memories(ROMs), random access memories (RAMs) such as dynamic random accessmemories (DRAMs), static random access memories (SRAMs), erasableprogrammable read-only memories (EPROMs), flash memories, electricallyerasable programmable read-only memories (EEPROMs), magnetic or opticalcards, or any other type of media suitable for storing electronicinstructions.

While the present invention has been described with respect to a limitednumber of embodiments, those skilled in the art will appreciate numerousmodifications and variations therefrom. It is intended that the appendedclaims cover all such modifications and variations as fall within thetrue spirit and scope of this present invention.

What is claimed is:
 1. A processor comprising: a first domain includingat least one core to execute instructions; a second domain including atleast one execution unit to execute instructions transparent to anoperating system (OS), wherein a driver of the second domain is tocontrol execution on the second domain; an interconnect to interconnectthe first domain and the second domain to a memory coupled to theprocessor; and a power controller to control a frequency of theinterconnect based on memory boundedness of a workload executed on thesecond domain.
 2. The processor of claim 1, wherein the driver of thesecond domain is to request the power controller to update theinterconnect frequency based on the memory boundedness.
 3. The processorof claim 1, wherein the driver of the second domain is to determine thememory boundedness based on statistics collected during execution of theworkload on the second domain.
 4. The processor of claim 1, wherein thepower controller includes a mapping table to map a frequency of thesecond domain to a minimum interconnect frequency.
 5. The processor ofclaim 1, wherein the at least one execution unit comprises a pluralityof graphics engines.
 6. The processor of claim 1, wherein the powercontroller is to control the first domain and the second domain tooperate at different voltage levels.
 7. The processor of claim 1,wherein the power controller is to control the first and second domainsto dynamically enter into and exit one or more low power states.
 8. Theprocessor of claim 1, further comprising a ring interconnect to couplethe first domain and the second domain.
 9. The processor of claim 2,wherein the interconnect is of the first domain, and the powercontroller is to update a frequency of the first domain responsive tothe second domain driver request.
 10. The processor of claim 4, whereinthe driver of the second domain is to provide a first set of entries forthe mapping table when the processor is enabled, and to update at leastsome of the first set of entries based on a change to a workload of thesecond domain.
 11. The processor of claim 2, wherein the powercontroller is to control the interconnect frequency to be a maximum of afrequency requested by the driver of the second domain and a firstdomain frequency requested by the OS, and to reduce the interconnectfrequency to the first domain frequency when the second domain enters alow power mode.
 12. The processor of claim 6, further comprising a thirddomain including the power controller, wherein the third domain is tooperate at a fixed frequency.
 13. A machine-readable medium havingstored thereon instructions, which if performed by a machine cause themachine to perform a method comprising: receiving a message from a firstdomain of a multi-domain processor, in a controller of the multi-domainprocessor, the message including a request to configure a mapping tableto store a mapping between a frequency of the first domain and a minimumfrequency of an interconnect that couples the first domain to a cachememory of the multi-domain processor; writing a plurality of entries ofthe mapping table, each entry including a mapping between a first domainfrequency and a minimum interconnect frequency; and controlling afrequency of the interconnect using the mapping table, responsive to afrequency at which the first domain is operating.
 14. Themachine-readable medium of claim 13, wherein each of the plurality ofentries includes a ratio between a first domain frequency and aninterconnect frequency.
 15. The machine-readable medium of claim 13,wherein each of the plurality of entries includes a first domainfrequency and a corresponding interconnect minimum frequency.
 16. Themachine-readable medium of claim 13, wherein the method furthercomprises gathering statistics on memory boundedness of a workloadexecuting on the first domain.
 17. The machine-readable medium of claim13, wherein the method further comprises limiting the interconnectfrequency to less than the minimum interconnect frequency for acorresponding frequency at which the first domain is operating when asecond domain of the multi-domain processor is thermally or powerlimited.
 18. A system comprising: a multi-domain processor including afirst domain having at least one core and an interconnect, a seconddomain including at least one execution unit to execute instructionstransparently to an operating system, and a third domain, the thirddomain including a mapping table to map a frequency of the second domainto a minimum frequency of the interconnect, wherein the second domain isto send a request to the third domain to cause an update to theinterconnect frequency based at least in part on a workload executed onthe second domain; and a dynamic random access memory (DRAM) coupled tothe multi-domain processor.
 19. The system of claim 18, wherein a driverof the second domain is to write an indicator and an address into afirst register of a mailbox interface of the third domain and to writedata into a second register of the mailbox interface, and responsive tothe indicator the third domain is to write the data into an entry of themapping table addressed by the address in the first register.
 20. Thesystem of claim 18, wherein the third domain is to control theinterconnect frequency to be a maximum of a frequency requested by thedriver of the second domain and a first domain frequency requested bythe operating system.